﻿using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace SupportLayer.Objetos.Produto
{
	[Table(Constantes.Tabelas.TABELAS.AVALIACAO)]
	public class AvaliacaoClass
	{
		[Column(Constantes.PRODUTO.AVALIACAO.ID)]
		[Display(Name = Constantes.PRODUTO.AVALIACAO.ID)]
		public Int64 ID { get; set; }
		[Column(Constantes.PRODUTO.AVALIACAO.PRODUTO_ID)]
		[Display(Name = Constantes.PRODUTO.AVALIACAO.PRODUTO_ID)]
		public Int64 ProdutoID { get; set; }
		[Column(Constantes.PRODUTO.AVALIACAO.CLIENTE_ID)]
		[Display(Name = Constantes.PRODUTO.AVALIACAO.CLIENTE_ID)]
		public Int64 ClienteID { get; set; }
		[Column(Constantes.PRODUTO.AVALIACAO.ESTRELAS)]
		[Display(Name = Constantes.PRODUTO.AVALIACAO.ESTRELAS)]
		public int NumeroEstrelas { get; set; }
		[Column(Constantes.PRODUTO.AVALIACAO.TITULO)]
		[Required, MaxLength(200, ErrorMessage = "O máximo de caracteres para o título são 200.")]
		[Display(Name = Constantes.PRODUTO.AVALIACAO.TITULO)]
		public string Titulo { get; set; }
		[Column(Constantes.PRODUTO.AVALIACAO.COMENTARIO)]
		[Required, MaxLength(2147483647, ErrorMessage = "O máximo de caracteres para o título são 2147483647.")]
		[Display(Name = Constantes.PRODUTO.AVALIACAO.COMENTARIO)]
		public string Comentario { get; set; }
		[Column(Constantes.PRODUTO.AVALIACAO.RECOMENDO)]
		[Display(Name = Constantes.PRODUTO.AVALIACAO.RECOMENDO)]
		public bool Recomendo { get; set; }
		[Column(Constantes.PRODUTO.AVALIACAO.DATA)]
		[Display(Name = Constantes.PRODUTO.AVALIACAO.DATA)]
		public DateTime Data { get; set; }
	}
}
